#ifndef INCLUDE_TOOL_H_
#define INCLUDE_TOOL_H_
#include"../base/public.h"
#include"../base/player.h"
#include"../base/place_base.h"
#include"../include/map.h"
namespace monopoly{
class Bomb : public Tool{
public:
    Bomb() = default;
    Bomb(const Bomb& Bomb) = default;
    ~Bomb() = default;
    ToolType GetType() = delete;
    uint8_t Cost(){return this->point_cost;};
    void Trigger(Player& player, Map& global_map) const ;
private:
    const uint8_t point_cost = 50;
};
class Barricade : public Tool{
public:
    Barricade() = default;
    Barricade(const Barricade& Barricade) = default;
    ~Barricade() = default;
    ToolType GetType() = delete;
    uint8_t Cost(){return this->point_cost;};
    void Trigger(Player& player) const;
private:
    const uint8_t point_cost = 50;
};
class Doll : public Tool{
public:
    Doll() = default;
    Doll(const Doll& Doll) = default;
    ~Doll() = default;
    ToolType GetType() = delete;
    uint8_t Cost(){return this->point_cost;};
    void Trigger(Player& player, Map& global_map) const;
private:
    const uint8_t point_cost = 30;
};
}// namespace monopoly
#endif// TOOL_H_